/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package superchat;

import java.io.IOException;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * Classe de sauvegarde des fichiers
 * @author georgesm
 */
public class FileBuffer {
    
    public String filename;
    public int recu = 0;
    public Vector<String> segments = new Vector<String>();
    public SuperChatView mainView;
    
    /**
     * Constructeur
     * @param f Destination du fichier
     * @param m Fenêtre principale du chat
     */
    FileBuffer(String f, SuperChatView m) {
        this.filename = f;
        this.mainView = m;
    }
    
    /**
     * Ajoute un tronçon de fichier au buffer, une fois complété le fichier est créé
     * @param block Morceau de fichier encodé en Base64
     * @param nb Numéro du morceau de fichier
     * @param max Nombre total de morceaux
     */
    public void push(String block, int nb, int max) {
        try {
            segments.add(nb, block);
            recu++;
            if (recu == max) {
                String data = "";
                int i;
                for (i = 0; i < max; i++) {
                    data = data + segments.get(i);
                }
                Base64.decodeToFile(data, filename);
                mainView.alert("Transfert de : " + filename + " terminé !");
            }
        } catch (Exception ex) {
            mainView.alert("Erreur transfert fichier");
        }
    }

}
